<?php
/**
 * 
 * @author tanaka
 * @package 
 * @subpackage
 */
class Form_Score extends Form_Abstract
{
	public function isValid(){
		if (is_null($this->_result)) {
			$params = $this->getParams();
			
			$notEmpty = new Zend_Validate_NotEmpty();
			
			$jobMaster = new Db_Master_Job();
			
			$validators['major_job'] = array(
				$notEmpty,
				new Validate_InArrayKey($jobMaster->getAllMajor()),
				'messages' => array(
					'クラス大分類を選択選択してね',
					'クラス大分類を選択選択してね',
				),
			);
			
			$minors = $jobMaster->getAllMinorByMajorCd($params['major_job']);
			
			$validators['minor_job'] = array(
				$notEmpty,
				new Validate_InArrayKey($minors),
				'messages' => array(
					'クラス小分類を選択選択してね',
					'クラス小分類を選択選択してね',
				),
			);
			
			$validators['pc_damage'] = array(
				$notEmpty,
				new Zend_Validate_Digits(),
				new Zend_Validate_Between(array(
					'min' => 0,
					'max' => 999999
				)),
				'messages' => array(
					'PCダメージを入力してね',
					'PCダメージは0以上の整数で入力してね',
					'PCダメージ高すぎｗｗｗｗ',
				),
			);
			
			$validators['kill'] = array(
				$notEmpty,
				new Zend_Validate_Digits(),
				new Zend_Validate_Between(array(
					'min' => 0,
					'max' => 99
				)),
				'messages' => array(
					'キル数を入力してね',
					'キル数は0以上の整数で入力してね',
					'そんなにキル取ってないでしょ・・・',
				),
			);
			
			$validators['dead'] = array(
				$notEmpty,
				new Zend_Validate_Digits(),
				new Zend_Validate_Between(array(
					'min' => 0,
					'max' => 99
				)),
				'messages' => array(
					'デッド数を入力してね',
					'デッド数は0以上の整数で入力してね',
					'死にすぎ。今すぐ2chにGO',
				),
			);
			
			$validators['build_damage'] = array(
				$notEmpty,
				new Zend_Validate_Digits(),
				new Zend_Validate_Between(array(
					'min' => 0,
					'max' => 9999999
				)),
				'messages' => array(
					'建築ダメージを入力してね',
					'建築ダメージは0以上の整数で入力してね',
					'ジャイ出ます',
				),
			);
			
			$validators['contribute'] = array(
				$notEmpty,
				new Zend_Validate_Digits(),
				new Zend_Validate_Between(array(
					'min' => 0,
					'max' => 999
				)),
				'messages' => array(
					'貢献度を入力してね',
					'貢献度は0以上の整数で入力してね',
					'ドラゴン先生',
				),
			);
			
			$filterInput = new Zend_Filter_Input(null, $validators, $params, array(
				Zend_Filter_Input::ALLOW_EMPTY => true,
			));
			
			$this->_result = $filterInput->isValid();
			foreach ($filterInput->getMessages() as $key => $value) {
				$this->_messages[$key] = array_shift($value);
			}
		}
		
		return $this->_result;
	}
}